ACTOR "High Protector Drone" : "Protector Drone" 31096
{
    //$Category DN3D Aliens //Protector Drones
    Health 660
    Mass 7250
    Speed 16
	HitObituary "%o was ripped apart by a high protector drone."
    Obituary "%o was ripped apart by a high protector drone."
	MeleeDamage 5
	DropItem "Shrinker Ammo" 64 5
	DamageFactor "Damage_Shock", 0.9
	DamageFactor "Damage_BigShock", 1.0
    DamageFactor "Ice", 0.7
    States
    {
	Spawn:
        BPRD B 0
        BPRD B 0 Thing_ChangeTID(0,1000)
        BPRD B 2 A_Look
        Loop
    See:
	    BPRD B 0
        BPRD B 0 A_StopSoundEx("SoundSlot6")
		BPRD B 0 A_ChangeFlag("NOPAIN",0)
		BPRD B 0 A_Gravity
        BPRD BBCC 2 A_Chase
		BPRD C 0 A_SpawnItem("AlienStep5",0,0,0,0)
		BPRD DDEE 2 A_Chase
		BPRD E 0 A_SpawnItem("AlienStep5",0,0,0,0)
		BPRD A 0 A_Jump(64,"Jump")
        Loop
	Jump: 
        BPRD A 0 A_PlaySound("ProtectorDrone/Active",6)
		BPRD A 0 A_ChangeFlag(SLIDESONWALLS,1)
        BPRD A 5 A_FaceTarget
        BPRD U 1 ThrustThingZ(0,70,0,1)
		BPRD U 1 A_Recoil(-5)
		BPRD U 0 A_JumpIfCloser(71,"Melee2")
		BPRD U 1 A_CheckFloor("ProtectorLand")
		BPRD U 0 A_JumpIfCloser(71,"Melee2")
		BPRD U 1 A_CheckFloor("ProtectorLand")
		BPRD U 0 A_JumpIfCloser(71,"Melee2")
		BPRD U 1 A_CheckFloor("ProtectorLand")
		BPRD U 0 A_JumpIfCloser(71,"Melee2")
		BPRD U 1 A_CheckFloor("ProtectorLand")
		BPRD U 0 A_JumpIfCloser(71,"Melee2")
		BPRD U 1 A_CheckFloor("ProtectorLand")
		BPRD U 0 A_Recoil(-5)
        BPRD U 0 A_JumpIfCloser(71,"Melee2")
		BPRD U 1 A_CheckFloor("ProtectorLand")
		BPRD U 0 A_JumpIfCloser(71,"Melee2")
		BPRD U 1 A_CheckFloor("ProtectorLand")
		BPRD U 0 A_JumpIfCloser(71,"Melee2")
		BPRD U 1 A_CheckFloor("ProtectorLand")
		BPRD U 0 A_JumpIfCloser(71,"Melee2")
		BPRD U 1 A_CheckFloor("ProtectorLand")
		BPRD U 0 A_JumpIfCloser(71,"Melee2")
		BPRD U 1 A_CheckFloor("ProtectorLand")
		BPRD U 0 A_Recoil(-5)
		BPRD V 0 A_JumpIfCloser(71,"Melee2")
		BPRD V 1 A_CheckFloor("ProtectorLand")
		BPRD V 0 A_JumpIfCloser(71,"Melee2")
		BPRD V 1 A_CheckFloor("ProtectorLand")
		BPRD V 0 A_JumpIfCloser(71,"Melee2")
		BPRD V 1 A_CheckFloor("ProtectorLand")
		BPRD V 0 A_JumpIfCloser(71,"Melee2")
		BPRD V 1 A_CheckFloor("ProtectorLand")
		BPRD V 0 A_JumpIfCloser(71,"Melee2")
		BPRD V 1 A_CheckFloor("ProtectorLand")
		BPRD V 0 A_Recoil(-5)
		BPRD V 0 A_JumpIfCloser(71,"Melee2")
		BPRD V 1 A_CheckFloor("ProtectorLand")
		BPRD V 0 A_JumpIfCloser(71,"Melee2")
		BPRD V 1 A_CheckFloor("ProtectorLand")
		BPRD V 0 A_JumpIfCloser(71,"Melee2")
		BPRD V 1 A_CheckFloor("ProtectorLand")
		BPRD V 0 A_JumpIfCloser(71,"Melee2")
		BPRD V 1 A_CheckFloor("ProtectorLand")
		BPRD V 0 A_JumpIfCloser(71,"Melee2")
		BPRD V 1 A_CheckFloor("ProtectorLand")
		BPRD W 0 A_Recoil(-5)
		BPRD W 0 A_JumpIfCloser(71,"Melee2")
		BPRD W 1 A_CheckFloor("ProtectorLand")
		BPRD W 0 A_JumpIfCloser(71,"Melee2")
		BPRD W 1 A_CheckFloor("ProtectorLand")
		BPRD W 0 A_JumpIfCloser(71,"Melee2")
		BPRD W 1 A_CheckFloor("ProtectorLand")
		BPRD W 0 A_JumpIfCloser(71,"Melee2")
		BPRD W 1 A_CheckFloor("ProtectorLand")
		BPRD W 0 A_JumpIfCloser(71,"Melee2")
		BPRD W 1 A_CheckFloor("ProtectorLand")
		BPRD W 0 A_JumpIfCloser(71,"Melee2")
		BPRD W 1 A_CheckFloor("ProtectorLand")
		BPRD W 0 A_JumpIfCloser(71,"Melee2")
		BPRD W 1 A_CheckFloor("ProtectorLand")
		BPRD W 0 A_JumpIfCloser(71,"Melee2")
		BPRD W 1 A_CheckFloor("ProtectorLand")
		BPRD W 0 A_JumpIfCloser(71,"Melee2")
		BPRD W 1 A_CheckFloor("ProtectorLand")
		BPRD W 0 A_JumpIfCloser(71,"Melee2")
		BPRD W 1 A_CheckFloor("ProtectorLand")
		BPRD W 0 A_JumpIfCloser(71,"Melee2")
		BPRD W 1 A_CheckFloor("ProtectorLand")
		BPRD W 0 A_JumpIfCloser(71,"Melee2")
		BPRD W 1 A_CheckFloor("ProtectorLand")
		BPRD W 0 A_JumpIfCloser(71,"Melee2")
		BPRD W 1 A_CheckFloor("ProtectorLand")
		BPRD W 0 A_JumpIfCloser(71,"Melee2")
		BPRD W 1 A_CheckFloor("ProtectorLand")
		BPRD W 0 A_JumpIfCloser(71,"Melee2")
		BPRD W 1 A_Recoil(1)
	    BPRD W 1 A_CheckFloor("ProtectorLand")
		Goto Jump+77
	ProtectorLand:
        BPRD A 6 A_ScaleVelocity(0.6)
		BPRD A 0 A_ChangeFlag(SLIDESONWALLS,0)
	    BPRD A 0 A_ScaleVelocity(0)
        Goto See
	Missile:
        BPRD I 0 A_JumpIfInTargetInventory("DukeShrinkCounter",1,"Lunge")
        BPRD I 0 A_PlayWeaponSound("ProtectorDrone/Attack")
        BPRD IIII 5 A_FaceTarget 
        BPRD I 0 A_FaceTarget
        BPRD J 1 Bright A_CustomMissile("AlienMorpherAttack",32,0,0)
		BPRD J 9 Bright 
        BPRD A 35
        Goto See
	Lunge: 
        BPRD A 0 A_PlaySound("ProtectorDrone/Active")
        BPRD A 20 A_FaceTarget
        BPRD BCDEBCDEBCDEBCDEBCDEBCDEBCDEBCDEBCDEBCDEBCDEBCDEBCDEBCDEBCDE 3 A_SkullAttack
        Goto Melee
    Melee:
        BPRD F 7 A_FaceTarget
		BPRD G 7 A_CustomMeleeAttack(Random(7,8),"","","Normal",1)
        BPRD H 7 A_CustomMeleeAttack(Random(7,8),"ProtectorDrone/Melee","ProtectorDrone/Melee","Normal",1)
        Goto See
	Melee2:
        BPRD F 0 A_FaceTarget
		BPRD F 0 A_ChangeFlag(SLIDESONWALLS,0)
		BPRD G 7 A_CustomMeleeAttack(Random(7,8),"ProtectorDrone/Melee","ProtectorDrone/Melee","Normal",1)
        BPRD H 7 A_CustomMeleeAttack(Random(7,8),"ProtectorDrone/Melee","ProtectorDrone/Melee","Normal",1)
        Goto See
	Pain:
        BPRD X 3
        BPRD X 3 A_Pain
        Goto See
    Pain.Radial:
        BPRD X 0
        BPRD X 0 HealThing(2)
        Goto See	
	Pain.LaserShot:
	    BPRD X 0
		BPRD X 0 A_SpawnItemEx("PainTripLaser",0,0,5)
		BPRD X 0 HealThing(2)
		Goto See
	Pain.Fire:
	    APRF A 0
		APRF A 0 A_GiveInventory("FireCheck",1)
		APRF A 0 A_GiveInventory("FireCheckDeath",1)
		APRF A 0 A_PlaySoundEx("FireLoop/Monsters","SoundSlot7",1)
		APRF A 0 A_PlaySound("ProtectorDrone/Pain",10)
		APRF A 0 A_ChangeFlag("NOPAIN",1)
		APRF A 0 A_ChangeFlag("FRIGHTENED",1)
		APRF B 0 A_Wander
		APRF B 0 A_SpawnItemEx("FireRadiusDamage4",0,0,38)
		APRF BB 1 Bright A_SpawnItemEx("FirePuffDuke",Random(-16,16),Random(-16,16),Random(5,56),0,0,1,0,32)
		APRF B 0 A_Wander
		APRF B 0 A_SpawnItemEx("FireRadiusDamage4",0,0,38)
		APRF BB 1 Bright A_SpawnItemEx("FirePuffDuke",Random(-16,16),Random(-16,16),Random(5,56),0,0,1,0,32)
		APRF C 0 A_Wander
		APRF C 0 A_SpawnItemEx("FireRadiusDamage4",0,0,38)
		APRF CC 1 Bright A_SpawnItemEx("FirePuffDuke",Random(-16,16),Random(-16,16),Random(5,56),0,0,1,0,32)
		APRF C 0 A_Wander
		APRF C 0 A_SpawnItemEx("FireRadiusDamage4",0,0,38)
		APRF CC 1 Bright A_SpawnItemEx("FirePuffDuke",Random(-16,16),Random(-16,16),Random(5,56),0,0,1,0,32)
		APRF D 0 A_Wander
		APRF D 0 A_SpawnItemEx("FireRadiusDamage4",0,0,38)
		APRF DD 1 Bright A_SpawnItemEx("FirePuffDuke",Random(-16,16),Random(-16,16),Random(5,56),0,0,1,0,32)
		APRF D 0 A_Wander
		APRF D 0 A_SpawnItemEx("FireRadiusDamage4",0,0,38)
		APRF DD 1 Bright A_SpawnItemEx("FirePuffDuke",Random(-16,16),Random(-16,16),Random(5,56),0,0,1,0,32)
		APRF E 0 A_Wander
		APRF E 0 A_SpawnItemEx("FireRadiusDamage4",0,0,38)
		APRF EE 1 Bright A_SpawnItemEx("FirePuffDuke",Random(-16,16),Random(-16,16),Random(5,56),0,0,1,0,32)
		APRF E 0 A_Wander
		APRF E 0 A_SpawnItemEx("FireRadiusDamage4",0,0,38)
		APRF EE 1 Bright A_SpawnItemEx("FirePuffDuke",Random(-16,16),Random(-16,16),Random(5,56),0,0,1,0,32)
        APRF B 0 A_Wander
		APRF B 0 A_SpawnItemEx("FireRadiusDamage4",0,0,38)
		APRF BB 1 Bright A_SpawnItemEx("FirePuffDuke",Random(-16,16),Random(-16,16),Random(5,56),0,0,1,0,32)
		APRF B 0 A_Wander
		APRF B 0 A_SpawnItemEx("FireRadiusDamage4",0,0,38)
		APRF BB 1 Bright A_SpawnItemEx("FirePuffDuke",Random(-16,16),Random(-16,16),Random(5,56),0,0,1,0,32)
		APRF C 0 A_Wander
		APRF C 0 A_SpawnItemEx("FireRadiusDamage4",0,0,38)
		APRF CC 1 Bright A_SpawnItemEx("FirePuffDuke",Random(-16,16),Random(-16,16),Random(5,56),0,0,1,0,32)
		APRF C 0 A_Wander
		APRF C 0 A_SpawnItemEx("FireRadiusDamage4",0,0,38)
		APRF CC 1 Bright A_SpawnItemEx("FirePuffDuke",Random(-16,16),Random(-16,16),Random(5,56),0,0,1,0,32)
		APRF D 0 A_Wander
		APRF D 0 A_SpawnItemEx("FireRadiusDamage4",0,0,38)
		APRF DD 1 Bright A_SpawnItemEx("FirePuffDuke",Random(-16,16),Random(-16,16),Random(5,56),0,0,1,0,32)
		APRF D 0 A_Wander
		APRF D 0 A_SpawnItemEx("FireRadiusDamage4",0,0,38)
		APRF DD 1 Bright A_SpawnItemEx("FirePuffDuke",Random(-16,16),Random(-16,16),Random(5,56),0,0,1,0,32)
		APRF E 0 A_Wander
		APRF E 0 A_SpawnItemEx("FireRadiusDamage4",0,0,38)
		APRF EE 1 Bright A_SpawnItemEx("FirePuffDuke",Random(-16,16),Random(-16,16),Random(5,56),0,0,1,0,32)
		APRF E 0 A_Wander
		APRF E 0 A_SpawnItemEx("FireRadiusDamage4",0,0,38)
		APRF EE 1 Bright A_SpawnItemEx("FirePuffDuke",Random(-16,16),Random(-16,16),Random(5,56),0,0,1,0,32)
		APRF E 0 A_JumpIfInventory("FireCheck",8,"PainFireStop")
		Loop	
	PainFireStop:
	    APRF A 0 
		APRF A 0 A_ChangeFlag("NOPAIN",0)
		APRF A 0 A_ChangeFlag("FRIGHTENED",0)
		APRF A 0 A_TakeInventory("FireCheck",999)
		APRF A 0 A_TakeInventory("FireCheckDeath",999)
		APRF A 0 A_StopSoundEx("SoundSlot7")
		Goto See
	Death:	
	    BPRD L 0
		BPRD L 0 A_JumpIfInventory("FireCheckDeath",1,"Burn")
		BPRD L 0 A_ChangeFlag("NOPAIN",0)
		BPRD L 0 A_StopSoundEx("SoundSlot7")
		BPRD L 0 A_Jump(256,1,10)
		BPRD L 5 A_Scream
        BPRD M 5
        BPRD N 5 A_NoBlocking
        BPRD OPQRS 5
        BPRD T -1
        Stop
		BPR2 L 5 A_Scream
        BPR2 M 5
        BPR2 N 5 A_NoBlocking
        BPR2 OPQRS 5
        BPR2 T 1 A_GiveInventory("Death2Check",1)
		BPR2 T -1 
        Stop
    Death.Damage_Explosion:
	Death.Damage_BigShock:
		BPRD B 0
		BPRD B 0 A_ChangeFlag("NOPAIN",0)
		BPRD B 0 A_StopSoundEx("Body")
		BPRD B 0 A_StopSoundEx("SoundSlot7")
        BPRD B 0 A_PlaySound("Gib/Explode",5)
        BPRD B 0 A_NoBlocking
        BPRD BBB 0 A_SpawnDebris("DukeGreenGibs1")
        BPRD BBB 0 A_SpawnDebris("DukeGreenGibs2")
		BPRD BBB 0 A_SpawnDebris("DukeGreenGibs3")
        BPRD BBB 0 A_SpawnDebris("DukeGreenGibs4")
        BPRD BBB 0 A_SpawnDebris("DukeGreenGibs5")		
        BPRD BBBBBBBBB 0 A_SpawnDebris("DukeGreenGibs6")
	    TNT1 A 1
	    Stop
    Death.Damage_Expander:
        BPRD B 0
		BPRD B 0 A_StopSoundEx("Body")
		BPRD B 0 A_StopSoundEx("SoundSlot7")
		BPRD B 1 A_PlaySound("Expander/Expand",5)
		BPRD B 1 A_SetScale(0.71,0.71)
        BPRD B 1 A_SetScale(0.72,0.72)
		BPRD B 1 A_SetScale(0.73,0.73)
		BPRD B 1 A_SetScale(0.74,0.74)
		BPRD B 1 A_SetScale(0.75,0.75)
		BPRD B 1 A_SetScale(0.76,0.76)
		BPRD B 1 A_SetScale(0.77,0.77)
		BPRD B 1 A_SetScale(0.78,0.78)
		BPRD B 1 A_SetScale(0.79,0.79)
		BPRD B 1 A_SetScale(0.80,0.80)
		BPRD B 1 A_SetScale(0.81,0.81)
		BPRD B 1 A_SetScale(0.82,0.82)
		BPRD B 1 A_SetScale(0.83,0.83)
		BPRD B 1 A_SetScale(0.84,0.84)
		BPRD B 1 A_SetScale(0.85,0.85)
		BPRD B 1 A_SetScale(0.86,0.86)
		BPRD B 1 A_SetScale(0.87,0.87)
		BPRD B 1 A_SetScale(0.88,0.88)
		BPRD B 1 A_SetScale(0.89,0.89)
		BPRD B 1 A_SetScale(0.90,0.90)
		BPRD B 1 A_SetScale(0.91,0.91)
		BPRD B 1 A_SetScale(0.92,0.92)
		BPRD B 1 A_SetScale(0.93,0.93)
		BPRD B 1 A_SetScale(0.94,0.94)
		BPRD B 1 A_SetScale(0.95,0.95)
		BPRD B 1 A_SetScale(0.96,0.96)
		BPRD B 1 A_SetScale(0.97,0.97)
		BPRD B 1 A_SetScale(0.98,0.98)
		BPRD B 1 A_SetScale(0.99,0.99)
		BPRD B 1 A_SetScale(1.00,1.00)
		BPRD B 1 A_SetScale(1.01,1.01)
		BPRD B 1 A_SetScale(1.02,1.02)
		BPRD B 1 A_SetScale(1.03,1.03)
		BPRD B 1 A_SetScale(1.04,1.04)
		BPRD B 1 A_SetScale(1.05,1.05)
		BPRD B 1 A_SetScale(1.06,1.06)
		BPRD B 1 A_SetScale(1.07,1.07)
		BPRD B 1 A_SetScale(1.08,1.08)
		BPRD B 1 A_SetScale(1.09,1.09)
		BPRD B 1 A_SetScale(1.10,1.10)
		BPRD B 1 A_SetScale(1.11,1.11)
		BPRD B 1 A_SetScale(1.12,1.12)
		BPRD B 1 A_SetScale(1.13,1.13)
		BPRD B 1 A_SetScale(1.14,1.14)
        BPRD B 25 A_SetScale(1.15,1.15)
        BPRD B 0 A_SpawnItemEx("ExpanderExplosion",0,0,32,0,0,0,0,SXF_ABSOLUTEVELOCITY,0)
        Goto Death.Damage_Explosion
	Burn:
	    APRF L 0
		APRF L 0 A_ChangeFlag("NOPAIN",0)
		APRF L 0 A_StopSoundEx("SoundSlot7")
		APRF L 0 A_Jump(256,1,40)
		APRF L 0 A_Scream
        APRF LLLLLMMMMM 1 A_SpawnItemEx("FirePuffDuke",Random(-20,20),Random(-20,20),Random(5,56),0,0,1,0,32)
        APRF N 0 A_NoBlocking
        APRF OOOOO 1 A_SpawnItemEx("FirePuffDuke",Random(-20,20),Random(-20,20),Random(5,50),0,0,1,0,32)
		APRF PPPPP 1 A_SpawnItemEx("FirePuffDuke",Random(-20,20),Random(-20,20),Random(5,44),0,0,1,0,32)
		APRF QQQQQ 1 A_SpawnItemEx("FirePuffDuke",Random(-20,20),Random(-20,20),Random(5,36),0,0,1,0,32)
		APRF RRRRR 1 A_SpawnItemEx("FirePuffDuke",Random(-20,20),Random(-20,20),Random(5,23),0,0,1,0,32)
		APRF SSSSS 1 A_SpawnItemEx("FirePuffDuke",Random(-20,20),Random(-20,20),Random(5,15),0,0,1,0,32)
		APRF T 1 A_SpawnItemEx("FireintheFloor")
        APRF T -1
        Stop
		APF2 L 0 A_Scream
        APF2 LLLLLMMMMM 1 A_SpawnItemEx("FirePuffDuke",Random(-20,20),Random(-20,20),Random(5,56),0,0,1,0,32)
        APF2 N 0 A_NoBlocking
        APF2 OOOOO 1 A_SpawnItemEx("FirePuffDuke",Random(-20,20),Random(-20,20),Random(5,50),0,0,1,0,32)
		APF2 PPPPP 1 A_SpawnItemEx("FirePuffDuke",Random(-20,20),Random(-20,20),Random(5,44),0,0,1,0,32)
		APF2 QQQQQ 1 A_SpawnItemEx("FirePuffDuke",Random(-20,20),Random(-20,20),Random(5,36),0,0,1,0,32)
		APF2 RRRRR 1 A_SpawnItemEx("FirePuffDuke",Random(-20,20),Random(-20,20),Random(5,23),0,0,1,0,32)
		APF2 SSSSS 1 A_SpawnItemEx("FirePuffDuke",Random(-20,20),Random(-20,20),Random(5,15),0,0,1,0,32)
		APF2 T 1 A_SpawnItemEx("FireintheFloor")
        APF2 T 1 A_GiveInventory("Death2CheckFire",1) 
		APF2 T -1 
        Stop
	Raise:
	    TNT1 A 0 
	    TNT1 A 0 A_UnSetShootable
		TNT1 A 0 A_ChangeFlag("COUNTKILL",0)
		TNT1 A 0 A_ChangeFlag("SOLID",0)
	    BPRD T 0 A_JumpIfInventory("FireCheckDeath",1,"Raise2")
		BPRD T 0 A_JumpIfInventory("Death2Check",1,2)
		BPRD T 35
		Stop
		BPR2 T 0
		BPR2 T 35
		Stop
	Raise2:
		APRF T 0
		APRF T 0 A_JumpIfInventory("Death2CheckFire",1,2)
		APRF T 35
		Stop
		APF2 T 0
		APF2 T 35
		Stop
	    }
}

ACTOR " High Protector Drone " : "High Protector Drone" 31097
{
    //$Category DN3D Aliens //Protector Drones
	DropItem "Shrinker Ammo" 64 5
    States
    {
	Spawn:
		BPRD K 0
		BPRD K 1 A_JumpIfInventory("QueenDroneCheck",1,6)
		BPRD K 1 A_GiveInventory("QueenDroneCheck",1)
        BPRD K 0 Thing_ChangeTID(0,1000)
		BPRD K 48 		
		BPRD KK 4 A_Look
		Goto See	
		BPRD B 2 A_Look
        Loop
    See:
	    BPRD K 0
        BPRD K 0 A_StopSoundEx("SoundSlot6")
		BPRD K 0 A_ChangeFlag("NOPAIN",0)
		BPRD K 0 A_Gravity
        BPRD BBCC 2 A_Chase
		BPRD C 0 A_SpawnItem("AlienStep5",0,0,0,0)
		BPRD DDEE 2 A_Chase
		BPRD E 0 A_SpawnItem("AlienStep5",0,0,0,0)
		BPRD A 0 A_Jump(64,"Jump")
        Loop
	Jump: 
        BPRD A 0 A_PlaySound("ProtectorDrone/Active",6)
        BPRD A 5 A_FaceTarget
        BPRD U 1 ThrustThingZ(0,70,0,1)
		BPRD U 1 A_Recoil(-5)
		BPRD U 0 A_JumpIfCloser(71,"Melee2")
		BPRD U 1 A_CheckFloor("ProtectorLand")
		BPRD U 0 A_JumpIfCloser(71,"Melee2")
		BPRD U 1 A_CheckFloor("ProtectorLand")
		BPRD U 0 A_JumpIfCloser(71,"Melee2")
		BPRD U 1 A_CheckFloor("ProtectorLand")
		BPRD U 0 A_JumpIfCloser(71,"Melee2")
		BPRD U 1 A_CheckFloor("ProtectorLand")
		BPRD U 0 A_JumpIfCloser(71,"Melee2")
		BPRD U 1 A_CheckFloor("ProtectorLand")
		BPRD U 0 A_Recoil(-5)
        BPRD U 0 A_JumpIfCloser(71,"Melee2")
		BPRD U 1 A_CheckFloor("ProtectorLand")
		BPRD U 0 A_JumpIfCloser(71,"Melee2")
		BPRD U 1 A_CheckFloor("ProtectorLand")
		BPRD U 0 A_JumpIfCloser(71,"Melee2")
		BPRD U 1 A_CheckFloor("ProtectorLand")
		BPRD U 0 A_JumpIfCloser(71,"Melee2")
		BPRD U 1 A_CheckFloor("ProtectorLand")
		BPRD U 0 A_JumpIfCloser(71,"Melee2")
		BPRD U 1 A_CheckFloor("ProtectorLand")
		BPRD U 0 A_Recoil(-5)
		BPRD V 0 A_JumpIfCloser(71,"Melee2")
		BPRD V 1 A_CheckFloor("ProtectorLand")
		BPRD V 0 A_JumpIfCloser(71,"Melee2")
		BPRD V 1 A_CheckFloor("ProtectorLand")
		BPRD V 0 A_JumpIfCloser(71,"Melee2")
		BPRD V 1 A_CheckFloor("ProtectorLand")
		BPRD V 0 A_JumpIfCloser(71,"Melee2")
		BPRD V 1 A_CheckFloor("ProtectorLand")
		BPRD V 0 A_JumpIfCloser(71,"Melee2")
		BPRD V 1 A_CheckFloor("ProtectorLand")
		BPRD V 0 A_Recoil(-5)
		BPRD V 0 A_JumpIfCloser(71,"Melee2")
		BPRD V 1 A_CheckFloor("ProtectorLand")
		BPRD V 0 A_JumpIfCloser(71,"Melee2")
		BPRD V 1 A_CheckFloor("ProtectorLand")
		BPRD V 0 A_JumpIfCloser(71,"Melee2")
		BPRD V 1 A_CheckFloor("ProtectorLand")
		BPRD V 0 A_JumpIfCloser(71,"Melee2")
		BPRD V 1 A_CheckFloor("ProtectorLand")
		BPRD V 0 A_JumpIfCloser(71,"Melee2")
		BPRD V 1 A_CheckFloor("ProtectorLand")
		BPRD W 0 A_Recoil(-5)
		BPRD W 0 A_JumpIfCloser(71,"Melee2")
		BPRD W 1 A_CheckFloor("ProtectorLand")
		BPRD W 0 A_JumpIfCloser(71,"Melee2")
		BPRD W 1 A_CheckFloor("ProtectorLand")
		BPRD W 0 A_JumpIfCloser(71,"Melee2")
		BPRD W 1 A_CheckFloor("ProtectorLand")
		BPRD W 0 A_JumpIfCloser(71,"Melee2")
		BPRD W 1 A_CheckFloor("ProtectorLand")
		BPRD W 0 A_JumpIfCloser(71,"Melee2")
		BPRD W 1 A_CheckFloor("ProtectorLand")
		BPRD W 0 A_JumpIfCloser(71,"Melee2")
		BPRD W 1 A_CheckFloor("ProtectorLand")
		BPRD W 0 A_JumpIfCloser(71,"Melee2")
		BPRD W 1 A_CheckFloor("ProtectorLand")
		BPRD W 0 A_JumpIfCloser(71,"Melee2")
		BPRD W 1 A_CheckFloor("ProtectorLand")
		BPRD W 0 A_JumpIfCloser(71,"Melee2")
		BPRD W 1 A_CheckFloor("ProtectorLand")
		BPRD W 0 A_JumpIfCloser(71,"Melee2")
		BPRD W 1 A_CheckFloor("ProtectorLand")
		BPRD W 0 A_JumpIfCloser(71,"Melee2")
		BPRD W 1 A_CheckFloor("ProtectorLand")
		BPRD W 0 A_JumpIfCloser(71,"Melee2")
		BPRD W 1 A_CheckFloor("ProtectorLand")
		BPRD W 0 A_JumpIfCloser(71,"Melee2")
		BPRD W 1 A_CheckFloor("ProtectorLand")
		BPRD W 0 A_JumpIfCloser(71,"Melee2")
		BPRD W 1 A_CheckFloor("ProtectorLand")
		BPRD W 0 A_JumpIfCloser(71,"Melee2")
	    BPRD W 1 A_CheckFloor("ProtectorLand")
		Goto Jump+76
	ProtectorLand:
        BPRD A 6 A_ScaleVelocity(0.6)
	    BPRD A 0 A_ScaleVelocity(0)
        Goto See
	Missile:
        BPRD I 0 A_JumpIfInTargetInventory("DukeShrinkCounter",1,"Lunge")
        BPRD I 0 A_PlayWeaponSound("ProtectorDrone/Attack")
        BPRD IIII 5 A_FaceTarget 
        BPRD I 0 A_FaceTarget
        BPRD J 1 Bright A_CustomMissile("AlienMorpherAttack",32,0,0)
		BPRD J 9 Bright 
        BPRD A 35
        Goto See
	Lunge: 
        BPRD A 0 A_PlaySound("ProtectorDrone/Active")
        BPRD A 20 A_FaceTarget
        BPRD BCDEBCDEBCDEBCDEBCDEBCDEBCDEBCDEBCDEBCDEBCDEBCDEBCDEBCDEBCDE 3 A_SkullAttack
        Goto Melee
    Melee:
        BPRD F 7 A_FaceTarget
		BPRD G 7 A_CustomMeleeAttack(Random(7,8),"","","Normal",1)
        BPRD H 7 A_CustomMeleeAttack(Random(7,8),"ProtectorDrone/Melee","ProtectorDrone/Melee","Normal",1)
        Goto See
	Melee2:
        BPRD F 0 A_FaceTarget
		BPRD F 0 A_ChangeFlag(SLIDESONWALLS,0)
		BPRD G 7 A_CustomMeleeAttack(Random(7,8),"ProtectorDrone/Melee","ProtectorDrone/Melee","Normal",1)
        BPRD H 7 A_CustomMeleeAttack(Random(7,8),"ProtectorDrone/Melee","ProtectorDrone/Melee","Normal",1)
        Goto See
	Pain:
        BPRD X 3
        BPRD X 3 A_Pain
        Goto See
    Pain.Radial:
        BPRD X 0
        BPRD X 0 HealThing(2)
        Goto See	
	Pain.LaserShot:
	    BPRD X 0
		BPRD X 0 A_SpawnItemEx("PainTripLaser",0,0,5)
		BPRD X 0 HealThing(2)
		Goto See
	Pain.Fire:
	    APRF A 0
		APRF A 0 A_GiveInventory("FireCheck",1)
		APRF A 0 A_GiveInventory("FireCheckDeath",1)
		APRF A 0 A_PlaySoundEx("FireLoop/Monsters","SoundSlot7",1)
		APRF A 0 A_PlaySound("ProtectorDrone/Pain",10)
		APRF A 0 A_ChangeFlag("NOPAIN",1)
		APRF A 0 A_ChangeFlag("FRIGHTENED",1)
		APRF B 0 A_Wander
		APRF B 0 A_SpawnItemEx("FireRadiusDamage4",0,0,38)
		APRF BB 1 Bright A_SpawnItemEx("FirePuffDuke",Random(-16,16),Random(-16,16),Random(5,56),0,0,1,0,32)
		APRF B 0 A_Wander
		APRF B 0 A_SpawnItemEx("FireRadiusDamage4",0,0,38)
		APRF BB 1 Bright A_SpawnItemEx("FirePuffDuke",Random(-16,16),Random(-16,16),Random(5,56),0,0,1,0,32)
		APRF C 0 A_Wander
		APRF C 0 A_SpawnItemEx("FireRadiusDamage4",0,0,38)
		APRF CC 1 Bright A_SpawnItemEx("FirePuffDuke",Random(-16,16),Random(-16,16),Random(5,56),0,0,1,0,32)
		APRF C 0 A_Wander
		APRF C 0 A_SpawnItemEx("FireRadiusDamage4",0,0,38)
		APRF CC 1 Bright A_SpawnItemEx("FirePuffDuke",Random(-16,16),Random(-16,16),Random(5,56),0,0,1,0,32)
		APRF D 0 A_Wander
		APRF D 0 A_SpawnItemEx("FireRadiusDamage4",0,0,38)
		APRF DD 1 Bright A_SpawnItemEx("FirePuffDuke",Random(-16,16),Random(-16,16),Random(5,56),0,0,1,0,32)
		APRF D 0 A_Wander
		APRF D 0 A_SpawnItemEx("FireRadiusDamage4",0,0,38)
		APRF DD 1 Bright A_SpawnItemEx("FirePuffDuke",Random(-16,16),Random(-16,16),Random(5,56),0,0,1,0,32)
		APRF E 0 A_Wander
		APRF E 0 A_SpawnItemEx("FireRadiusDamage4",0,0,38)
		APRF EE 1 Bright A_SpawnItemEx("FirePuffDuke",Random(-16,16),Random(-16,16),Random(5,56),0,0,1,0,32)
		APRF E 0 A_Wander
		APRF E 0 A_SpawnItemEx("FireRadiusDamage4",0,0,38)
		APRF EE 1 Bright A_SpawnItemEx("FirePuffDuke",Random(-16,16),Random(-16,16),Random(5,56),0,0,1,0,32)
        APRF B 0 A_Wander
		APRF B 0 A_SpawnItemEx("FireRadiusDamage4",0,0,38)
		APRF BB 1 Bright A_SpawnItemEx("FirePuffDuke",Random(-16,16),Random(-16,16),Random(5,56),0,0,1,0,32)
		APRF B 0 A_Wander
		APRF B 0 A_SpawnItemEx("FireRadiusDamage4",0,0,38)
		APRF BB 1 Bright A_SpawnItemEx("FirePuffDuke",Random(-16,16),Random(-16,16),Random(5,56),0,0,1,0,32)
		APRF C 0 A_Wander
		APRF C 0 A_SpawnItemEx("FireRadiusDamage4",0,0,38)
		APRF CC 1 Bright A_SpawnItemEx("FirePuffDuke",Random(-16,16),Random(-16,16),Random(5,56),0,0,1,0,32)
		APRF C 0 A_Wander
		APRF C 0 A_SpawnItemEx("FireRadiusDamage4",0,0,38)
		APRF CC 1 Bright A_SpawnItemEx("FirePuffDuke",Random(-16,16),Random(-16,16),Random(5,56),0,0,1,0,32)
		APRF D 0 A_Wander
		APRF D 0 A_SpawnItemEx("FireRadiusDamage4",0,0,38)
		APRF DD 1 Bright A_SpawnItemEx("FirePuffDuke",Random(-16,16),Random(-16,16),Random(5,56),0,0,1,0,32)
		APRF D 0 A_Wander
		APRF D 0 A_SpawnItemEx("FireRadiusDamage4",0,0,38)
		APRF DD 1 Bright A_SpawnItemEx("FirePuffDuke",Random(-16,16),Random(-16,16),Random(5,56),0,0,1,0,32)
		APRF E 0 A_Wander
		APRF E 0 A_SpawnItemEx("FireRadiusDamage4",0,0,38)
		APRF EE 1 Bright A_SpawnItemEx("FirePuffDuke",Random(-16,16),Random(-16,16),Random(5,56),0,0,1,0,32)
		APRF E 0 A_Wander
		APRF E 0 A_SpawnItemEx("FireRadiusDamage4",0,0,38)
		APRF EE 1 Bright A_SpawnItemEx("FirePuffDuke",Random(-16,16),Random(-16,16),Random(5,56),0,0,1,0,32)
		APRF E 0 A_JumpIfInventory("FireCheck",8,"PainFireStop")
		Loop	
	PainFireStop:
	    APRF A 0 
		APRF A 0 A_ChangeFlag("NOPAIN",0)
		APRF A 0 A_ChangeFlag("FRIGHTENED",0)
		APRF A 0 A_TakeInventory("FireCheck",999)
		APRF A 0 A_TakeInventory("FireCheckDeath",999)
		APRF A 0 A_StopSoundEx("SoundSlot7")
		Goto See
	Death:	
	    BPRD L 0
		BPRD L 0 A_JumpIfInventory("FireCheckDeath",1,"Burn")
		BPRD L 0 A_ChangeFlag("NOPAIN",0)
		BPRD L 0 A_StopSoundEx("SoundSlot7")
		BPRD L 0 A_Jump(256,1,10)
		BPRD L 5 A_Scream
        BPRD M 5
        BPRD N 5 A_NoBlocking
        BPRD OPQRS 5
        BPRD T -1
        Stop
		BPR2 L 5 A_Scream
        BPR2 M 5
        BPR2 N 5 A_NoBlocking
        BPR2 OPQRS 5
        BPR2 T 1 A_GiveInventory("Death2Check",1)
		BPR2 T -1 
        Stop
    Death.Damage_Explosion:
	Death.Damage_BigShock:
		BPRD B 0
		BPRD B 0 A_ChangeFlag("NOPAIN",0)
		BPRD B 0 A_StopSoundEx("Body")
		BPRD B 0 A_StopSoundEx("SoundSlot7")
        BPRD B 0 A_PlaySound("Gib/Explode",5)
        BPRD B 0 A_NoBlocking
        BPRD BBB 0 A_SpawnDebris("DukeGreenGibs1")
        BPRD BBB 0 A_SpawnDebris("DukeGreenGibs2")
		BPRD BBB 0 A_SpawnDebris("DukeGreenGibs3")
        BPRD BBB 0 A_SpawnDebris("DukeGreenGibs4")
        BPRD BBB 0 A_SpawnDebris("DukeGreenGibs5")		
        BPRD BBBBBBBBB 0 A_SpawnDebris("DukeGreenGibs6")
	    TNT1 A 1
	    Stop
    Death.Damage_Expander:
        BPRD B 0
		BPRD B 0 A_StopSoundEx("Body")
		BPRD B 0 A_StopSoundEx("SoundSlot7")
		BPRD B 1 A_PlaySound("Expander/Expand",5)
		BPRD B 1 A_SetScale(0.71,0.71)
        BPRD B 1 A_SetScale(0.72,0.72)
		BPRD B 1 A_SetScale(0.73,0.73)
		BPRD B 1 A_SetScale(0.74,0.74)
		BPRD B 1 A_SetScale(0.75,0.75)
		BPRD B 1 A_SetScale(0.76,0.76)
		BPRD B 1 A_SetScale(0.77,0.77)
		BPRD B 1 A_SetScale(0.78,0.78)
		BPRD B 1 A_SetScale(0.79,0.79)
		BPRD B 1 A_SetScale(0.80,0.80)
		BPRD B 1 A_SetScale(0.81,0.81)
		BPRD B 1 A_SetScale(0.82,0.82)
		BPRD B 1 A_SetScale(0.83,0.83)
		BPRD B 1 A_SetScale(0.84,0.84)
		BPRD B 1 A_SetScale(0.85,0.85)
		BPRD B 1 A_SetScale(0.86,0.86)
		BPRD B 1 A_SetScale(0.87,0.87)
		BPRD B 1 A_SetScale(0.88,0.88)
		BPRD B 1 A_SetScale(0.89,0.89)
		BPRD B 1 A_SetScale(0.90,0.90)
		BPRD B 1 A_SetScale(0.91,0.91)
		BPRD B 1 A_SetScale(0.92,0.92)
		BPRD B 1 A_SetScale(0.93,0.93)
		BPRD B 1 A_SetScale(0.94,0.94)
		BPRD B 1 A_SetScale(0.95,0.95)
		BPRD B 1 A_SetScale(0.96,0.96)
		BPRD B 1 A_SetScale(0.97,0.97)
		BPRD B 1 A_SetScale(0.98,0.98)
		BPRD B 1 A_SetScale(0.99,0.99)
		BPRD B 1 A_SetScale(1.00,1.00)
		BPRD B 1 A_SetScale(1.01,1.01)
		BPRD B 1 A_SetScale(1.02,1.02)
		BPRD B 1 A_SetScale(1.03,1.03)
		BPRD B 1 A_SetScale(1.04,1.04)
		BPRD B 1 A_SetScale(1.05,1.05)
		BPRD B 1 A_SetScale(1.06,1.06)
		BPRD B 1 A_SetScale(1.07,1.07)
		BPRD B 1 A_SetScale(1.08,1.08)
		BPRD B 1 A_SetScale(1.09,1.09)
		BPRD B 1 A_SetScale(1.10,1.10)
		BPRD B 1 A_SetScale(1.11,1.11)
		BPRD B 1 A_SetScale(1.12,1.12)
		BPRD B 1 A_SetScale(1.13,1.13)
		BPRD B 1 A_SetScale(1.14,1.14)
        BPRD B 25 A_SetScale(1.15,1.15)
        BPRD B 0 A_SpawnItemEx("ExpanderExplosion",0,0,32,0,0,0,0,SXF_ABSOLUTEVELOCITY,0)
        Goto Death.Damage_Explosion
	Burn:
	    APRF L 0
		APRF L 0 A_ChangeFlag("NOPAIN",0)
		APRF L 0 A_StopSoundEx("SoundSlot7")
		APRF L 0 A_Jump(256,1,40)
		APRF L 0 A_Scream
        APRF LLLLLMMMMM 1 A_SpawnItemEx("FirePuffDuke",Random(-20,20),Random(-20,20),Random(5,56),0,0,1,0,32)
        APRF N 0 A_NoBlocking
        APRF OOOOO 1 A_SpawnItemEx("FirePuffDuke",Random(-20,20),Random(-20,20),Random(5,50),0,0,1,0,32)
		APRF PPPPP 1 A_SpawnItemEx("FirePuffDuke",Random(-20,20),Random(-20,20),Random(5,44),0,0,1,0,32)
		APRF QQQQQ 1 A_SpawnItemEx("FirePuffDuke",Random(-20,20),Random(-20,20),Random(5,36),0,0,1,0,32)
		APRF RRRRR 1 A_SpawnItemEx("FirePuffDuke",Random(-20,20),Random(-20,20),Random(5,23),0,0,1,0,32)
		APRF SSSSS 1 A_SpawnItemEx("FirePuffDuke",Random(-20,20),Random(-20,20),Random(5,15),0,0,1,0,32)
		APRF T 1 A_SpawnItemEx("FireintheFloor")
        APRF T -1
        Stop
		APF2 L 0 A_Scream
        APF2 LLLLLMMMMM 1 A_SpawnItemEx("FirePuffDuke",Random(-20,20),Random(-20,20),Random(5,56),0,0,1,0,32)
        APF2 N 0 A_NoBlocking
        APF2 OOOOO 1 A_SpawnItemEx("FirePuffDuke",Random(-20,20),Random(-20,20),Random(5,50),0,0,1,0,32)
		APF2 PPPPP 1 A_SpawnItemEx("FirePuffDuke",Random(-20,20),Random(-20,20),Random(5,44),0,0,1,0,32)
		APF2 QQQQQ 1 A_SpawnItemEx("FirePuffDuke",Random(-20,20),Random(-20,20),Random(5,36),0,0,1,0,32)
		APF2 RRRRR 1 A_SpawnItemEx("FirePuffDuke",Random(-20,20),Random(-20,20),Random(5,23),0,0,1,0,32)
		APF2 SSSSS 1 A_SpawnItemEx("FirePuffDuke",Random(-20,20),Random(-20,20),Random(5,15),0,0,1,0,32)
		APF2 T 1 A_SpawnItemEx("FireintheFloor")
        APF2 T 1 A_GiveInventory("Death2CheckFire",1) 
		APF2 T -1 
        Stop
	Raise:
	    TNT1 A 0 
	    TNT1 A 0 A_UnSetShootable
		TNT1 A 0 A_ChangeFlag("COUNTKILL",0)
		TNT1 A 0 A_ChangeFlag("SOLID",0)
	    BPRD T 0 A_JumpIfInventory("FireCheckDeath",1,"Raise2")
		BPRD T 0 A_JumpIfInventory("Death2Check",1,2)
		BPRD T 35
		Stop
		BPR2 T 0
		BPR2 T 35
		Stop
	Raise2:
		APRF T 0
		APRF T 0 A_JumpIfInventory("Death2CheckFire",1,2)
		APRF T 35
		Stop
		APF2 T 0
		APF2 T 35
		Stop
	    }
}